package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/url"
	"os"
)

type Project struct {
	Name         string        `json:"name"`
	Homepage     *url.URL      `json:"homepage"`
	Contributors []Contributor `json:"members"`
}

type Contributor struct {
	ID   int    `json:"id"`
	Mail string `json:"mail"`
}

func main() {
	p := Project{}
	raw, err := ioutil.ReadFile("../data/project.json")
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	// json.Unmarshal 将json字符串解码到相应的数据结构
	// 第一个参数是json字符串，第二个参数是接受json解析的数据结构
	_ = json.Unmarshal(raw, &p)
	fmt.Printf("%v\n", p)
	fmt.Printf("%+v\n", p)
}
